video: Realize the media stream before setting a file
authorMatthias Clasen <mclasen@redhat.com>
Tue, 29 Dec 2020 20:55:28 +0000 (15:55 -0500)
committerMatthias Clasen <mclasen@redhat.com>
Mon, 4 Jan 2021 20:00:36 +0000 (15:00 -0500)
This makes it so that we obtain a GL context before
creating the GstSink, so we at least advertise our
ability to handle GL buffer.

Gstreamer still won't send us any.

gtk/gtkvideo.c

index 15a5e25a3656488fcfcc1c992a055dcb88a44a12..f5b6f303e093b0af9bbb4b561b6f2037b3008e4a 100644 (file)
@@ -688,7 +688,13 @@ gtk_video_set_file (GtkVideo *self,
       stream = gtk_media_file_new ();
 
       if (gtk_widget_get_realized (GTK_WIDGET (self)))
-        gtk_media_file_set_file (GTK_MEDIA_FILE (stream), file);
+        {
+          GdkSurface *surface;
+
+          surface = gtk_native_get_surface (gtk_widget_get_native (GTK_WIDGET (self)));
+          gtk_media_stream_realize (stream, surface);
+          gtk_media_file_set_file (GTK_MEDIA_FILE (stream), file);
+        }
       gtk_video_set_media_stream (self, stream);
 
       g_object_unref (stream);